/**
 * 演示服务类型定义
 */
import { ErrorType, ErrorLevel, LifeserviceError } from './ErrorService.js';
import { LogLevel } from './LoggerService.js';

/**
 * 演示服务选项
 */
export interface DemoServiceOptions {
  /**
   * 是否启用演示服务
   */
  enabled?: boolean;
  /**
   * 演示延迟时间（毫秒）
   */
  delay?: number;
}

/**
 * 演示服务接口
 */
export interface IDemoService {
  /**
   * 初始化服务
   */
  boot(): Promise<this>;
  
  /**
   * 演示认证流程
   */
  demoAuthentication(): Promise<{ success: boolean; isLoggedIn: boolean }>;
  
  /**
   * 演示API请求
   */
  demoApiRequests(): Promise<{ success: boolean; message: string }>;
  
  /**
   * 演示国际化功能
   */
  demoInternationalization(): Promise<{ success: boolean; message: string }>;
  
  /**
   * 演示通知功能
   */
  demoNotifications(): Promise<{ success: boolean; message: string }>;
  
  /**
   * 演示错误处理
   */
  demoErrorHandling(): Promise<{ success: boolean; message: string }>;
  
  /**
   * 演示日志功能
   */
  demoLogging(): Promise<{ success: boolean; message: string }>;
  
  /**
   * 运行完整的演示流程
   */
  runFullDemo(): Promise<{ success: boolean; message: string }>;
}

/**
 * 演示错误信息
 */
export interface DemoErrorInfo {
  /**
   * 错误类型
   */
  type: ErrorType;
  /**
   * 错误消息
   */
  message: string;
  /**
   * 错误级别
   */
  level: ErrorLevel;
  /**
   * 错误代码
   */
  code: string;
}

/**
 * 演示API请求信息
 */
export interface DemoApiRequestInfo {
  /**
   * 请求方法
   */
  method: 'get' | 'post' | 'put' | 'delete';
  /**
   * 请求URL
   */
  url: string;
  /**
   * 请求数据
   */
  data?: any;
}